package com.biglead.demo.service;


import com.biglead.demo.common.PageResult;
import com.biglead.demo.common.R;
import com.biglead.demo.pojo.Order;
import com.biglead.demo.pojo.RequestParams;
import com.biglead.demo.vo.OrderVo;

import java.util.List;

public interface OrderService {

/** 秒杀*/
    R toSecKill(Long goodsId, Long userId, Long sn);
    /** 查看详情 包括商品*/
    OrderVo detailFromId(Long orderId);
    /** 查询订单详情 包括商品*/
    OrderVo detailFromSn(Long sn);
    /** 查询订单详情 不包括商品*/
    Order getOrderDetail(Long orderId);
    /** 创建订单 消息队列使用*/
    R createOrder(Long goodsId, Long userId, Long sn);
    /** 预下单*/
    R createPreOrder(Long goodsId, Long userId);
    /** 初始化 redis 库存数据*/
    R startOrderInit();


    /** 更新订单信息*/
    void updateOrderById(Order order);
    /** 查询所有的订单 同步ES使用*/
    List<Order> alllist();
    /**
     * ES 分页查询用户的订单
     * @param userId
     * @param params
     * @return
     */
    PageResult listFromList(Long userId, RequestParams params);

    /** ES 获取订单详情*/
    Order getOrderDetailFromEs(Long orderId);
}
